package com.example.dziennikposilkow;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.TextView;

public class UzyskaneDane extends DziennikMainActivity {
	
public static final String MY_PREFERENCES = "myPreferences";
	
	int uzyskane_dane_bialko = 0;
	int uzyskane_dane_tluszcze = 0;
	int uzyskane_dane_kalorie = 0;
    int trening_silowy = 0;
    int trening_aerobowy = 0;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
		setContentView(R.layout.activity_uzyskane_dane);

		SharedPreferences preferences = getSharedPreferences(MY_PREFERENCES,
				Activity.MODE_PRIVATE);

		
		
		int wiek = Integer.parseInt(preferences.getString("WiekToSave", ""));
		int waga = Integer.parseInt(preferences.getString("WagaToSave", ""));
		int wzrost = Integer.parseInt(preferences.getString("WzrostToSave", ""));
		
		boolean plec_mezczyzna = preferences.getBoolean("PlecToSaveMezczyzna",
				false);
		boolean plec_kobieta = preferences.getBoolean("PlecToSaveKobieta",
				false);
		
		boolean budowa_ektomorfik = preferences.getBoolean("BudowaToSaveEktomorfik",
				false);
		boolean budowa_mezomorfik = preferences.getBoolean("BudowaToSaveMezomorfik",
				false);
		boolean budowa_endomorfik = preferences.getBoolean("BudowaToSaveEndomorfik",
				false);
		
		boolean cel_masa = preferences.getBoolean("CelToSaveMasa",
				false);
		boolean cel_redukcja = preferences.getBoolean("CelToSaveRedukcja",
				false);
		
		boolean aktywnosc_mala = preferences.getBoolean("AktywnoscToSaveMala",
				false);
		
		boolean aktywnosc_srednia = preferences.getBoolean("AktywnoscToSaveSrednia",
				false);
		
		boolean aktywnosc_duza = preferences.getBoolean("AktywnoscToSaveDuza",
				false);
		
		
		
		boolean sil = preferences.getBoolean("TreningToSaveSilowy",
				false);
		
		boolean aer = preferences.getBoolean("TreningToSaveAerobowy",
				false);
		
		int silowy = (sil)? 1 : 0;
		int aerobowy = (aer)? 1 : 0;
		
		

		int trening_silowy_czas = 0;
		int trening_silowy_ile = 0;
		int trening_aerobowy_czas = 0;
		int trening_aerobowy_ile = 0;
		
		boolean trening_silowy_intensywnosc_mala = false;
		boolean trening_silowy_intensywnosc_srednia = false;
		boolean trening_silowy_intensywnosc_duza = false;
		boolean trening_aerobowy_intensywnosc_mala = false;
		boolean trening_aerobowy_intensywnosc_srednia = false;
		boolean trening_aerobowy_intensywnosc_duza = false;
		
		
		if (silowy == 1 && aerobowy == 1){

			trening_silowy_czas = Integer.parseInt(preferences.getString("CzasTreningSilowyAerobowyToSave", ""));
			trening_silowy_ile = Integer.parseInt(preferences.getString("IleTreningSilowyAerobowyToSave", ""));
			trening_silowy_intensywnosc_mala = preferences.getBoolean("IntensywnoscMalaTreningSilowyAerobowyToSave",
					false);
			trening_silowy_intensywnosc_srednia = preferences.getBoolean("IntensywnoscSredniaTreningSilowyAerobowyToSave",
					false);
			trening_silowy_intensywnosc_duza = preferences.getBoolean("IntensywnoscDuzaTreningSilowyAerobowyToSave",
					false);
			
			trening_aerobowy_czas = Integer.parseInt(preferences.getString("CzasTreningAerobowySilowyToSave", ""));
			trening_aerobowy_ile = Integer.parseInt(preferences.getString("IleTreningAerobowySilowyToSave", ""));
			trening_aerobowy_intensywnosc_mala = preferences.getBoolean("IntensywnoscMalaTreningAerobowySilowyToSave",
					false);
			trening_aerobowy_intensywnosc_srednia = preferences.getBoolean("IntensywnoscSredniaTreningAerobowySilowyToSave",
					false);
			trening_aerobowy_intensywnosc_duza = preferences.getBoolean("IntensywnoscDuzaTreningAerobowySilowyToSave",
					false);
			}

		else if (aerobowy == 1){
    		
			trening_aerobowy_czas = Integer.parseInt(preferences.getString("CzasTreningAerobowyToSave", ""));
			trening_aerobowy_ile = Integer.parseInt(preferences.getString("IleTreningAerobowyToSave", ""));
			trening_aerobowy_intensywnosc_mala = preferences.getBoolean("IntensywnoscMalaTreningAerobowyToSave",
					false);
			trening_aerobowy_intensywnosc_srednia = preferences.getBoolean("IntensywnoscSredniaTreningAerobowyToSave",
					false);
			trening_aerobowy_intensywnosc_duza = preferences.getBoolean("IntensywnoscDuzaTreningAerobowyToSave",
					false);
			
    		}
    		
    	else if (silowy == 1){
    			
    		trening_silowy_czas = Integer.parseInt(preferences.getString("CzasTreningSilowyToSave", ""));
			trening_silowy_ile = Integer.parseInt(preferences.getString("IleTreningSilowyToSave", ""));
			trening_silowy_intensywnosc_mala = preferences.getBoolean("IntensywnoscMalaTreningSilowyToSave",
					false);
			trening_silowy_intensywnosc_srednia = preferences.getBoolean("IntensywnoscSredniaTreningSilowyToSave",
					false);
			trening_silowy_intensywnosc_duza = preferences.getBoolean("IntensywnoscDuzaTreningSilowyToSave",
					false);
    		
    			}

    		
		
		
		int masa = (cel_masa)? 1 : 0;
		int redukcja = (cel_redukcja)? 1 : 0;
		int budowa_ekt = (budowa_ektomorfik)? 1 : 0;
		int budowa_end = (budowa_endomorfik)? 1 : 0;
		int budowa_mez = (budowa_mezomorfik)? 1 : 0;
		
		
		int silowy_mala = (trening_silowy_intensywnosc_mala)? 1 : 0;
		int silowy_srednia = (trening_silowy_intensywnosc_srednia)? 1 : 0;
		int silowy_duza = (trening_silowy_intensywnosc_duza)? 1 : 0;
		
		
		int aerobowy_mala = (trening_aerobowy_intensywnosc_mala)? 1 : 0;
		int aerobowy_srednia = (trening_aerobowy_intensywnosc_srednia)? 1 : 0;
		int aerobowy_duza = (trening_aerobowy_intensywnosc_duza)? 1 : 0;
		
		int mala = (aktywnosc_mala)? 1 : 0;
		int srednia = (aktywnosc_srednia)? 1 : 0;
		int duza = (aktywnosc_duza)? 1 : 0;
		
		int plec_k = (plec_kobieta)? 1 : 0;
		int plec_m = (plec_mezczyzna)? 1 : 0;
		
	
		


		
		TextView text_view_uzyskane_dane_bialko = (TextView) findViewById(R.id.textViewUzyskaneDaneBialkoObliczony);
		text_view_uzyskane_dane_bialko.setText(ObliczUzyskaneDaneBialko(waga, plec_kobieta,
				plec_mezczyzna, masa, redukcja, budowa_ekt, budowa_mez, budowa_end).toString());
		
		TextView text_view_uzyskane_dane_tluszcze = (TextView) findViewById(R.id.textViewUzyskaneDaneTluszczeObliczony);
		text_view_uzyskane_dane_tluszcze.setText(ObliczUzyskaneDaneTluszcze(waga, plec_kobieta,
				plec_mezczyzna, masa, redukcja, budowa_ekt, budowa_mez, budowa_end).toString());

		
		TextView text_view_uzyskane_dane_kalorie = (TextView) findViewById(R.id.textViewUzyskaneDaneKalorieObliczony);
		text_view_uzyskane_dane_kalorie.setText(ObliczUzyskaneDaneKalorie(waga, wiek, wzrost, plec_k,
				plec_m, masa, redukcja, budowa_ekt, budowa_mez, budowa_end, trening_silowy_czas, 
				trening_silowy_ile, silowy_mala, silowy_srednia, silowy_duza, trening_aerobowy_czas, trening_aerobowy_ile,
				aerobowy_mala, aerobowy_srednia, aerobowy_duza, mala, srednia, duza).toString());

		TextView text_view_uzyskane_dane_weglowodany = (TextView) findViewById(R.id.textViewUzyskaneDaneWeglowodanyObliczony);
		text_view_uzyskane_dane_weglowodany.setText(ObliczUzyskaneDaneWeglowodany(uzyskane_dane_kalorie,uzyskane_dane_bialko,uzyskane_dane_tluszcze).toString());
		
		
		
		
	}

	private Object ObliczUzyskaneDaneBialko(int waga, Boolean plec_k, Boolean plec_m, int masa, int redukcja, int budowa_ekt, int budowa_mez, int budowa_end) {
		
		if (plec_m){
		 uzyskane_dane_bialko =(int)((budowa_mez + budowa_end) * (1.9*waga + 0.2*waga*masa + 0.2*waga*redukcja) + 1.7*budowa_ekt*waga);
		}
		else if (plec_k){
			
			uzyskane_dane_bialko = (int)((budowa_mez + budowa_end) * (1.5*waga + 0.3*waga*masa) + 1.7*budowa_ekt*waga);
		}
	
		return uzyskane_dane_bialko;
		
	}
	
	private Object ObliczUzyskaneDaneTluszcze(int waga, Boolean plec_k, Boolean plec_m, int masa, int redukcja, int budowa_ekt, int budowa_mez, int budowa_end) {
		
		if (plec_m){
		 uzyskane_dane_tluszcze =(int)((budowa_mez + budowa_end) * (waga + 0.3*waga*redukcja) + budowa_ekt*(2*waga-0.5*waga*redukcja));
		}
		 else if (plec_k){
			
			uzyskane_dane_tluszcze = (int)(((budowa_mez + budowa_end)* waga) + 1.5*waga*budowa_ekt);
		}
	
		return uzyskane_dane_tluszcze;
		
	}
	
	private Object ObliczUzyskaneDaneKalorie(int waga, int wiek, int wzrost, int plec_k, int plec_m, int masa, int redukcja, int budowa_ekt, int budowa_mez,
			int budowa_end, int silowy_czas, int silowy_ile, int silowy_mala, int silowy_srednia,
			int silowy_duza, int aerobowy_czas, int aerobowy_ile, int aerobowy_mala, int aerobowy_srednia,
			int aerobowy_duza, int mala, int srednia, int duza) {
		
		int G56 = (700*mala + 800*srednia + 900*duza);
		int G57 = (400*mala + 450*srednia + 500*duza);
		int G58 = (200*mala + 300*srednia + 400*duza);
		
		
		double C56 = (9.99*waga) + (6.25*wzrost) - (4.92*wiek) + (5*plec_m) - (161*plec_k);
		
		double D56 = (silowy_czas*silowy_ile*8*silowy_mala) + (silowy_czas*silowy_ile*8.5*silowy_srednia)
				+ (silowy_czas*silowy_ile*9*silowy_duza) + (0.05*C56*silowy_mala) + (0.06*C56*silowy_srednia)
				+ (0.07*C56*silowy_duza);
				
		double E56 = (aerobowy_czas*aerobowy_ile*6*aerobowy_mala) + (aerobowy_czas*aerobowy_ile*8*aerobowy_srednia)
				+ (aerobowy_czas*aerobowy_ile*10*aerobowy_duza) + (5*aerobowy_mala) + (35*aerobowy_srednia)
				+ (180*aerobowy_duza);
		
		
		
		double D57 = (silowy_czas*silowy_ile*7.5*silowy_mala) + (silowy_czas*silowy_ile*8*silowy_srednia)
				+ (silowy_czas*silowy_ile*8.5*silowy_duza) + (0.05*C56*silowy_mala) + (0.055*C56*silowy_srednia)
				+ (0.065*C56*silowy_duza);
		double E57 = (aerobowy_czas*aerobowy_ile*6*aerobowy_mala) + (aerobowy_czas*aerobowy_ile*7*aerobowy_srednia)
				+ (aerobowy_czas*aerobowy_ile*9*aerobowy_duza) + (5*aerobowy_mala) + (35*aerobowy_srednia)
				+ (180*aerobowy_duza);
		
		double D58 = (silowy_czas*silowy_ile*7*silowy_mala) + (silowy_czas*silowy_ile*7.5*silowy_srednia)
				+ (silowy_czas*silowy_ile*8*silowy_duza) + (0.04*C56*silowy_mala) + (0.05*C56*silowy_srednia)
				+ (0.06*C56*silowy_duza);
		double E58 = (aerobowy_czas*aerobowy_ile*5*aerobowy_mala) + (aerobowy_czas*aerobowy_ile*6*aerobowy_srednia)
				+ (aerobowy_czas*aerobowy_ile*8*aerobowy_duza) + (5*aerobowy_mala) + (35*aerobowy_srednia)
				+ (180*aerobowy_duza);
		
		double F56 = (D56 + E56)/7;
		double F57 = (D57 + E57)/7;
		double F58 = (D58 + E58)/7;
		
		
		double I56 = C56 + (F56 + G56)*budowa_ekt + (F57 + G57)*budowa_mez + (F58 + G58)*budowa_end;
		double J56 = I56 + (0.1*I56*budowa_ekt) + (0.075*I56*budowa_mez) + (0.06*I56*budowa_end);
		uzyskane_dane_kalorie = (int)(J56) + 300*masa - 300*redukcja;
		
	
		return uzyskane_dane_kalorie;
		
	}
	
	private Object ObliczUzyskaneDaneWeglowodany(int kalorie, int bialko, int tluszcze) {
		
		int uzyskane_dane_weglowodany = (int) ((kalorie - (4*bialko + 9*tluszcze))/4);
	
		return uzyskane_dane_weglowodany;
		
	}

	
				
}

